sort()可以對數字進行排序,通常()沒有寫的時候是由小排到大,但也可以由大到小,不過()中間可以換其他函數,以達到由大到小的結果
number = [2,1,4,5,6,7,3,8]
number.sort()
print(number)
sort()除了可以排數字大小,也考已對字幕進行排序
flist = ["orange","apple","banana", "mango"]
flist.sort()
print(flist) #['apple', 'banana', 'mango', 'orange']
在sort,加上條件,使list中以降序排列
flist = ["orange","apple","banana", "mango"]
flist.sort(reverse = True)
print(flist) #['orange', 'mango', 'banana', 'apple']
number = [2,1,4,5,6,7,3,8]
number.sort(reverse = True)
print(number) #[8, 7, 6, 5, 4, 3, 2, 1]
自訂函數排序功能
先def定義一個函數
再根據函數的條件回傳排序結果
def num (n): #定一個函數num
return abs(a - 20) #計算list裡的數字與20之間的絕對值
number = [28,27,66,100,19,30,50]
number.sort(key = num) #套用函數num的數字
print(number) #[19, 27, 28, 30, 50, 66, 100]絕對值離20最近的數字由小到大
上面有提到,sort除了可以排序數字及字母,也可以利用sort排列list的大小寫
通常sort在排序的時候,會是大寫字母在前面,後面才排小寫
flist = ["Orange","apple","Banana","mango"]
flist.sort()
print(flist) #['Banana', 'Orange', 'apple', 'mango']
這個時候,我們可以利用str.lower作為sort的關鍵函數,可以不考慮字母的大小寫進行排序
flist = ["Orange","apple","Banana","mango"]
flist.sort(str.lower)
print(flist) #['apple', 'Banana', 'mango', 'Orange']
可以反轉目前的排序,將list的順序調換
flist = ["orange","apple","banana", "mango"]
flist.reverse()
print(flist) #['mango', 'banana', 'apple', 'orange']
如果要得到降序排列的話也可以利用reverse()
以此為例
flist = ["orange","apple","banana", "mango"]
flist.sort() #先正常排序
flist.reverse() #再將排序後的順序反轉
print(flist) #['orange', 'mango', 'banana', 'apple']